package benzapp.overlay;

import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Point;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.Projection;

/**
 * Overlay che rappresenta la porzione di mappa in cui è stata effettuata la ricerca
 * @author Valentino Briani
 */
public class RaggioRicercaOverlay extends Overlay {
	
	private GeoPoint centro;
	private SharedPreferences preferences;
	private float raggio;		// in Km
	
	Point lt;	//vertice a nord ovest del quadrato della ricerca
	Point rb;	//vertice a sud est del quadrato della ricerca
	
	public RaggioRicercaOverlay(Context context, GeoPoint centro) {
		this.centro = centro;
		//recupero dalle sharedpreferences l'attuale raggio di ricerca
		preferences = context.getSharedPreferences("Opzioni", context.MODE_PRIVATE);
		raggio = preferences.getFloat("raggio", 1);
	}
	
	@Override
	public void draw(Canvas canvas, MapView mapView, boolean shadow) {
		super.draw(canvas, mapView, shadow);
		
		//faccio la proiezione in pixel del centro e del raggio
        Projection projection = mapView.getProjection();
        Point o = projection.toPixels(centro, null);
        double r = projection.metersToEquatorPixels(raggio * 1000) * (1/ Math.cos(Math.toRadians(centro.getLatitudeE6()/1E6)));
        
        //setto colore, trasparenza e stile
        Paint paint_quadrato = new Paint();
        paint_quadrato.setColor(Color.BLUE);
        paint_quadrato.setAlpha(25);
        paint_quadrato.setAntiAlias(true);
        paint_quadrato.setStyle(Paint.Style.FILL);
        
        //disegno il rettangolo
        canvas.drawRect((float) (o.x - r), (float) (o.y - r), (float) (o.x + r), (float) (o.y + r), paint_quadrato);
        
   }

}
